package spring.test2;

import com.blackhorse.domain.Account;
import com.blackhorse.service.AccountService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import java.util.List;

/**
 * Spring整合JUnit
 * 让JUnit测试方法开始前创建好Spring核心容器
 * 1.导入jar包 spring-test
 * 2.使用junit提供的@RunWith注解替换原有的main方法，替换成spring提供的
 *  @RunWith(SpringJUnit4ClassRunner.class)
 * 3.告知Spring运行器，spring和核心配置文件或配置类
 * @ContextConfiguration(classes = ..., locations = ...)
 *      两个属性任选一个
 *      locations ； 指定Xml配置文件位置，加上classpath:关键字表示在类路径下
 *      classes ： 指定注解配置的配置类字节码位置
 *
 * 注意： 当spring版本为5.x时，要求junit的版本必须在4.12及以上
 */
@RunWith(SpringJUnit4ClassRunner.class)
//@ContextConfiguration(classes = {SpringConfiguration.class})
@ContextConfiguration(locations = {"classpath:anlis/anli/ac_anli_annotation.xml"})
public class Demo5_SpringWithJunit {
    @Autowired
    AccountService accountService;

    @Test
    public void testFindAllAccount() {
        List<Account> allAccount = accountService.findAllAccount();
        for (Account account : allAccount) {
            System.out.println(account);
        }
    }

    @Test
    public void testFindAccountById() {
        Account accountById = accountService.findAccountById(2);
        System.out.println(accountById);
    }

    //...其他方法不再测试，效果和demo4相同
}
